package com.cloudkinto.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import java.util.Date;
import java.time.LocalDate;

import java.io.Serializable;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 *
 * </p>
 *
 * @author zhujiale
 * @since 2022-09-20
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_serial_number_manage")
public class SerialNumberManageDo extends Model<SerialNumberManageDo> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("company_id")
    private Long companyId;

    /**
     * 序列号
     */
    @TableField("serial_number")
    private String serialNumber;

    /**
     * 产品id
     */
    @TableField("product_id")
    private Long productId;

    /**
     * 商品sku
     */
    @TableField("sku")
    private String sku;

    /**
     * 箱单号id 关联表t_serial_box表
     */
    @TableField("box_number")
    private String boxNumber;

    @TableField("abox_number")
    private String aboxNumber;

    /**
     * 托盘号id 关联表t_serial_tray表
     */
    @TableField("tray_number")
    private String trayNumber;

    /**
     * 订单状态  wtaing:待入库 in:已入库 out:已出库
     */
    @TableField("order_status")
    private String orderStatus;

    /**
     * 预报日期
     */
    @TableField("predict_date")
    private Date predictDate;

    /**
     * 入库日期
     */
    @TableField(value = "input_date",updateStrategy = FieldStrategy.IGNORED)
    private Date inputDate;

    /**
     * 出库日期
     */
    @TableField(value = "output_date",updateStrategy = FieldStrategy.IGNORED)
    private Date outputDate;

    /**
     * 入库单id 关联入库单表
     */
    @TableField(value = "order_input_id",updateStrategy = FieldStrategy.IGNORED)
    private Long orderInputId;

    @TableField(value = "customer_order")
    private String customerOrder;

    /**
     * 出库单id 关联出库单表
     */
    @TableField(value = "order_output_id",updateStrategy = FieldStrategy.IGNORED)
    private Long orderOutputId;

    /**
     * 出库状态
     */
    @TableField("output_type")
    private String outputType;

    /**
     * 禁止出库 1:禁止 0:不禁止
     */
    @TableField("is_prohibit_output")
    private Integer isProhibitOutput;

    @TableField("create_by")
    private Long createBy;

    @TableField("create_time")
    private Date createTime;

    @TableField("update_by")
    private Long updateBy;

    @TableField("update_time")
    private Date updateTime;

    @TableField("product_name")
    private String productName;

    @TableField("name")
    private String name;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
